An Application Program Interface (API) typically includes a library of program elements such as functions, routines, protocols, or processes associated with a particular operating system or computing platform. The program elements may be software-based functions and/or processes in the form of source code, scripts, and/or executable code. The computing platform may include software and/or hardware. For example, the hardware may include a type of processor (e.g., Intel® x86 processors) or hardware system. The software may include a version of an operating system such as UNIX, LINUX, WINDOWS, one or more proprietary operating systems, or like environments that allow for running or executing an application and/or program.
An API allows an application programmer to efficiently develop an application program capable of interfacing with the computing platform because the interface work is already done by the API. The programmer simply incorporates or programs the needed API functions from the API library into the application program. A programmer may use a software development kit (SDK) or other tool to develop application programs. The development tool may include APIs or may enable the developer to remotely access APIs for a particular computer platform. Currently, most APIs are either openly accessible or include access control capabilities as part of the API.
Recently, Internet or web-based services have emerged that typically combine two or more web-based services to enhance user experiences at a particular website. These combined web-based services are referred to as “mashups.” One approach to combining web-based services has been for at least one service to provide a web-based API to developers such that the web-based service can be integrated with another web-based service. For example, the Internet website ChicagoCrime.org combines the Google Maps web-service with crime information in the Chicago, Ill., USA area to show users where certain crimes have occurred geographically. To integrate the Google Maps service, a user's web browser typically supports Javascript that further enables the user's browser to support the Google Maps API. Google, Inc., of Mountain View, Calif., USA, freely distributes the Google Maps API to developers under certain conditions.
APIs are also used in other ways than “mashups.” APIs are used in web applications, internal applications, or intranet applications. APIs are used with desktop applications that access the API over the Internet. APIs are used in web page or desktop “widgets.”
One problem with current approaches to distributing APIs, including web-based APIs, is that there are no adequate mechanisms that enable the API provider to control, regulate, and/or monitor API distribution or application development based on their APIs.